{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "1a99b1bd-c006-4cfa-ba2a-dc161c6d3f6c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-03-28T02:11:47.711248Z",
     "iopub.status.busy": "2022-03-28T02:11:47.710603Z",
     "iopub.status.idle": "2022-03-28T02:11:47.720669Z",
     "shell.execute_reply": "2022-03-28T02:11:47.719958Z",
     "shell.execute_reply.started": "2022-03-28T02:11:47.711214Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2-2全1数组： \n",
      " [[1 1]\n",
      " [1 1]]\n",
      "4-3全0数组： \n",
      " [[0 0 0]\n",
      " [0 0 0]\n",
      " [0 0 0]\n",
      " [0 0 0]]\n",
      "指定数值2-3数组： \n",
      " [[520 520 520]\n",
      " [520 520 520]]\n",
      "6-6特征矩阵 \n",
      " [[1. 0. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0.]\n",
      " [0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 0. 0. 1.]]\n",
      "生成3-3空数组, \n",
      " [[3.14 3.14 3.14]\n",
      " [3.14 3.14 3.14]\n",
      " [3.14 3.14 3.14]]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np \n",
    "ar1=np.ones((2,2),dtype=int)\n",
    "print(\"2-2全1数组：\",'\\n',ar1)\n",
    "ar2=np.zeros((4,3),dtype=int)\n",
    "print(\"4-3全0数组：\",'\\n',ar2)\n",
    "ar3=np.full((2,3),520)\n",
    "print(\"指定数值2-3数组：\",'\\n',ar3)\n",
    "ar4=np.eye(6,dtype=float)\n",
    "print(\"6-6特征矩阵\",'\\n',ar4)\n",
    "ar5=np.empty((3,3))\n",
    "print(\"生成3-3空数组,\",'\\n',ar5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7b828dc8-3ca3-4cc7-9128-efa80d07150c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-03-28T02:40:59.706004Z",
     "iopub.status.busy": "2022-03-28T02:40:59.705132Z",
     "iopub.status.idle": "2022-03-28T02:40:59.877190Z",
     "shell.execute_reply": "2022-03-28T02:40:59.876441Z",
     "shell.execute_reply.started": "2022-03-28T02:40:59.705954Z"
    }
   },
   "source": [
    "###### import numpy as np \n",
    "a1=np.arange(1,200,1)# 注意arange是左闭右开区间[start,end)\n",
    "print(a1)\n",
    "a2=np.linspace(1,300,300)#注意linspace是左闭右闭区间[start,end]\n",
    "print(a2)\n",
    "a3=np.logspace(0,6463,64,base=2,dtype='uint64')#注意需要用uint64数据类型，否则会溢出\n",
    "print(a3)\n",
    "import matplotlib.pyplot as plt \n",
    "fig,axes=plt.subplots()\n",
    " \n",
    "axes.plot(a3)\n",
    "plt.show()ol,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "ef99f311-b2e1-44ad-8b8c-928ea882eac9",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-03-28T02:24:34.481562Z",
     "iopub.status.busy": "2022-03-28T02:24:34.480757Z",
     "iopub.status.idle": "2022-03-28T02:24:34.485996Z",
     "shell.execute_reply": "2022-03-28T02:24:34.485440Z",
     "shell.execute_reply.started": "2022-03-28T02:24:34.481523Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3-5全0数组： \n",
      " [[0 0 0 0 0]\n",
      " [0 0 0 0 0]\n",
      " [0 0 0 0 0]]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "ar2=np.zeros((3,5),dtype=int)\n",
    "print(\"3-5全0数组：\",'\\n',ar2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "ce19c20e-f59b-4624-80da-2968d4fdaf52",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-03-28T02:53:18.637540Z",
     "iopub.status.busy": "2022-03-28T02:53:18.636398Z",
     "iopub.status.idle": "2022-03-28T02:53:19.089605Z",
     "shell.execute_reply": "2022-03-28T02:53:19.088882Z",
     "shell.execute_reply.started": "2022-03-28T02:53:18.637493Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "生成二维随机数组： [[0.84340895 0.0812574  0.97847123]\n",
      " [0.50589167 0.56270337 0.23967043]\n",
      " [0.73406849 0.93451783 0.71169825]\n",
      " [0.38040955 0.70300703 0.50280084]\n",
      " [0.66240757 0.7350641  0.30716488]\n",
      " [0.52355431 0.21156041 0.06359469]]\n",
      "[-0.19427941  0.83224911  1.73793534 -1.73431935  0.38373348  0.30039129\n",
      " -0.40089181  0.17533305  0.83364305  0.95423753  0.77254752  0.87118521\n",
      " -1.87608319 -2.09213058  0.51186141 -1.36964519 -0.8032149  -0.86423193\n",
      "  1.37320121  1.11477185 -0.37077007 -0.54792953  0.25422563  0.48059935\n",
      " -0.73851697  0.67307742  0.25383974 -0.20878168 -0.00479949  0.55067091\n",
      " -0.92904591  0.24853097  0.40890245  0.86481379  0.34136572 -0.07402145\n",
      " -0.22764503  0.77697588  0.33723535 -0.19285325 -0.17068784  0.00726537\n",
      "  0.5709424  -0.90416541 -2.01230337 -0.0440014   1.38099889  0.46477923\n",
      "  0.8057986   0.40622279 -1.06562837  2.06888515  0.71052052 -0.08974403\n",
      "  1.04361669  0.14961032 -0.30280187 -0.55498228 -0.29104274  0.23666767\n",
      " -0.25034687 -1.0497868  -2.73778898  0.59738514  0.65060927 -0.82527911\n",
      "  0.36652165  0.6113895  -0.36538053 -1.74550017 -1.03859702  0.55524548\n",
      " -0.76221669 -1.32905106 -0.23559    -0.04968157  0.19874023 -0.70036775\n",
      "  0.14877481  0.71626688 -0.18501469 -0.68607999 -0.03662422  3.29119876\n",
      " -2.04149577 -0.31161179  0.70662724 -0.72254168 -1.87133861  2.18874925\n",
      "  0.31162574  0.51391385  1.09029869  0.06119019 -0.04859397 -1.74897044\n",
      "  0.80454486 -0.05890629 -0.88598526  0.81503364  1.94258005  0.49278439\n",
      "  0.35312107  0.03125381  0.26829383 -0.45980318 -0.25808005 -0.20036742\n",
      " -0.43382724  0.65931285 -0.96866701  1.10535535  0.18166595  1.11981123\n",
      "  1.36421969 -0.36206515  0.48270855  0.59293544 -0.74201263 -0.2136745\n",
      " -0.73283189  1.56126614  1.67259346  0.62997314  0.04117718 -0.95775829\n",
      " -1.85833796 -1.8450439   0.24220635  1.74981275  0.07271052  0.98922223\n",
      " -0.4974684   0.61911059 -0.02697644 -1.49155526  0.9128334  -1.55794137\n",
      "  1.10190318 -1.24547743  0.38361732 -1.61058366  0.0797669  -1.65055297\n",
      "  0.04634086 -0.89134361  0.34258059 -0.26853484 -1.45567904 -1.76062815\n",
      "  0.49029603 -0.38496311  0.39840922  0.19182956 -1.44175825  0.65716823\n",
      " -0.46099998 -0.80629161  0.29007609 -0.31691502  0.13456762 -0.96496072\n",
      "  0.79308951 -0.32608896 -0.74829922  1.06819006 -0.69291035 -0.27955918\n",
      "  0.61903704  0.16086578  0.06221378  0.77881129  0.08481071 -1.41658034\n",
      "  1.26545756  0.40156381 -0.23575904 -0.01957048 -1.24050913 -1.05551653\n",
      " -1.66576133 -0.09797842  0.26878675  1.08042703  1.17127558 -0.18840082\n",
      " -0.65176965  0.44914999 -0.95278735  0.79117141  0.87738951 -0.04407054\n",
      " -0.60663615 -0.82993508 -0.04110392  1.2205794   1.05696417 -0.59522681\n",
      "  2.27177806 -0.93494293]\n",
      "生成1-10（不包括10）的10个随机整数： [ 69 170  23 199 169 157 103 143 164 123  57 141 111 126 120  92 105 118\n",
      " 188   5  21 109  30  24   9  70 105 162 146 185 167 114  58   6  44 178\n",
      " 105 158  34  92 176  97 152 146 115 181  96  76 165  26  63 178 100  83\n",
      "  54 157 113  53 137 125 120 165 163  68 165  78  10  47 125  86 138  90\n",
      " 160  57  35 126  31 165 163 110  12  81  63  92 181 187  76  56  59 172\n",
      " 181  33  74 100  84  98 197 123 155  47 199 111  18 197  51   2 164 149\n",
      " 147 182 121  22 131  95  43 152  56  93 182 167 182  17 114 160  18 136\n",
      "  98 126 119 135  51   4  35  30  93  97 195 153  15  95 149 137 127  58\n",
      " 131 166 138 192 123  15   6 117 143 141 188 139  99  75  84 126  73   9\n",
      "   7 180  60 121 179 198 177  55  57 197 137  49 186  11  64 195 109  74\n",
      "  95 116  15 106  25  23 107  19  71  93  50 113 195  46  29 110  62 123\n",
      " 113  46]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fee1fc0e990>]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np \n",
    "n=np.random.rand(6,3)\n",
    "print(\"生成二维随机数组：\",n)\n",
    "n1=np.random.randn(200)\n",
    "print(n1)\n",
    "import matplotlib.pyplot as plt \n",
    "fig,axes=plt.subplots(2,2)\n",
    "ax1=axes[0,0]\n",
    "ax1.hist(n1)\n",
    "ax1.grid()\n",
    "n2=np.random.randint(1,200,200)\n",
    "print(\"生成1-10（不包括10）的10个随机整数：\",n2)\n",
    "n3=np.random.normal(0,10,1000)\n",
    "ax2=axes[0,1]\n",
    "ax2.hist(n3)\n",
    "ax2.grid()\n",
    "ax3=axes[1,0]\n",
    "ax3.plot(n2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "c0aadd7d-339b-415c-af85-4b9c9ecdcb79",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-04T02:14:53.370716Z",
     "iopub.status.busy": "2022-04-04T02:14:53.369914Z",
     "iopub.status.idle": "2022-04-04T02:14:53.375507Z",
     "shell.execute_reply": "2022-04-04T02:14:53.374895Z",
     "shell.execute_reply.started": "2022-04-04T02:14:53.370682Z"
    },
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 1  2  3  4  5]\n",
      " [ 6  7  8  9 10]\n",
      " [11 12 13 14 15]]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "a1=np.arange(1,16,1)\n",
    "#print(a1)\n",
    "a2=a1.reshape(3,5)\n",
    "print(a2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "f8cb17ca-c4ad-4ed1-9a1e-dff0c1dc55ac",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-04T02:47:39.292260Z",
     "iopub.status.busy": "2022-04-04T02:47:39.291583Z",
     "iopub.status.idle": "2022-04-04T02:47:39.308584Z",
     "shell.execute_reply": "2022-04-04T02:47:39.307768Z",
     "shell.execute_reply.started": "2022-04-04T02:47:39.292226Z"
    },
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "转置前数据: \n",
      " [[0.19151945 0.62210877 0.43772774 0.78535858 0.77997581]\n",
      " [0.27259261 0.27646426 0.80187218 0.95813935 0.87593263]\n",
      " [0.35781727 0.50099513 0.68346294 0.71270203 0.37025075]]\n",
      "转置后数据： \n",
      " [[0.19151945 0.27259261 0.35781727]\n",
      " [0.62210877 0.27646426 0.50099513]\n",
      " [0.43772774 0.80187218 0.68346294]\n",
      " [0.78535858 0.95813935 0.71270203]\n",
      " [0.77997581 0.87593263 0.37025075]]\n",
      "变形为2*10的矩阵 [[ 0  1  2  3  4  5  6  7  8  9]\n",
      " [10 11 12 13 14 15 16 17 18 19]]\n",
      "变形为4*5的矩阵 [[ 0  1  2  3  4]\n",
      " [ 5  6  7  8  9]\n",
      " [10 11 12 13 14]\n",
      " [15 16 17 18 19]]\n",
      "转换为二维列矩阵： [[ 0]\n",
      " [ 1]\n",
      " [ 2]\n",
      " [ 3]\n",
      " [ 4]\n",
      " [ 5]\n",
      " [ 6]\n",
      " [ 7]\n",
      " [ 8]\n",
      " [ 9]\n",
      " [10]\n",
      " [11]\n",
      " [12]\n",
      " [13]\n",
      " [14]\n",
      " [15]\n",
      " [16]\n",
      " [17]\n",
      " [18]\n",
      " [19]]\n",
      "转换为二维行矩阵： [[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]]\n",
      "[20 21 22 23 24]\n",
      "axis=0进行拼接 [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23\n",
      " 24]\n",
      "[[ 0  1  2  3  4]\n",
      " [ 5  6  7  8  9]\n",
      " [10 11 12 13 14]\n",
      " [15 16 17 18 19]]\n",
      "[[20 21 22 23 24]]\n",
      "矩阵行拼接，axis=0 [[ 0  1  2  3  4]\n",
      " [ 5  6  7  8  9]\n",
      " [10 11 12 13 14]\n",
      " [15 16 17 18 19]\n",
      " [20 21 22 23 24]]\n",
      "[[0]\n",
      " [1]\n",
      " [2]\n",
      " [3]]\n",
      "矩阵列拼接,axis=1： [[ 0  1  2  3  4  0]\n",
      " [ 5  6  7  8  9  1]\n",
      " [10 11 12 13 14  2]\n",
      " [15 16 17 18 19  3]]\n",
      "通过vstack进行垂直拼接 [[ 0  1  2  3  4]\n",
      " [ 5  6  7  8  9]\n",
      " [10 11 12 13 14]\n",
      " [15 16 17 18 19]\n",
      " [20 21 22 23 24]]\n",
      "通过hstack进行垂直拼接 [[ 0  1  2  3 20]\n",
      " [ 4  5  6  7 21]\n",
      " [ 8  9 10 11 22]\n",
      " [12 13 14 15 23]\n",
      " [16 17 18 19 24]]\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(1234)\n",
    "ar1=np.random.rand(3,5)\n",
    "print(\"转置前数据:\",'\\n',ar1)\n",
    "ar2=ar1.T\n",
    "print(\"转置后数据：\",'\\n',ar2)\n",
    "import numpy as np\n",
    "arr=np.arange(20)\n",
    "print(\"变形为2*10的矩阵\",arr.reshape(2,10))\n",
    "print(\"变形为4*5的矩阵\",arr.reshape(4,5))\n",
    "print(\"转换为二维列矩阵：\",arr[:,np.newaxis])\n",
    "print(\"转换为二维行矩阵：\",arr[np.newaxis,:])\n",
    "arr1=np.arange(20,25)\n",
    "print(arr1)\n",
    "arr2=np.concatenate([arr,arr1],axis=0)\n",
    "print(\"axis=0进行拼接\",arr2)\n",
    "arr2=arr.reshape(4,5)\n",
    "arr1_1=arr1[np.newaxis,:]\n",
    "print(arr2)\n",
    "print(arr1_1)\n",
    "print(\"矩阵行拼接，axis=0\",np.concatenate([arr2,arr1_1],axis=0))\n",
    "arr1_2=np.array([0,1,2,3])\n",
    "arr1_2=arr1_2[:,np.newaxis]\n",
    "print(arr1_2)\n",
    "print(\"矩阵列拼接,axis=1：\",np.concatenate([arr2,arr1_2],axis=1))\n",
    "print(\"通过vstack进行垂直拼接\",np.vstack([arr.reshape(4,5),arr1[np.newaxis,:]]))\n",
    "print(\"通过hstack进行垂直拼接\",np.hstack([arr.reshape(5,4),arr1[:,np.newaxis]]))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "py35-paddle1.2.0"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
